{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-automation-core",
      "artifactVersion": "2023.22.13",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.automation.core",
          "org.nuxeo.ecm.automation.features",
          "org.nuxeo.ecm.automation.io",
          "org.nuxeo.ecm.automation.jsf",
          "org.nuxeo.ecm.automation.scripting",
          "org.nuxeo.ecm.automation.server"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.automation",
        "id": "grp:org.nuxeo.ecm.automation",
        "name": "org.nuxeo.ecm.automation",
        "parentIds": [],
        "readmes": [],
        "version": "2023.22"
      },
      "bundleId": "org.nuxeo.ecm.automation.core",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.EventService--listeners",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.automation.core.impl.ReloadListener/Contributions/org.nuxeo.ecm.automation.core.impl.ReloadListener--listeners",
              "id": "org.nuxeo.ecm.automation.core.impl.ReloadListener--listeners",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.EventService",
                "name": "org.nuxeo.runtime.EventService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"listeners\" target=\"org.nuxeo.runtime.EventService\">\n        <listener class=\"org.nuxeo.ecm.automation.core.impl.ReloadListener\">\n            <topic>org.nuxeo.runtime.reload</topic>\n        </listener>\n    </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.automation.core.impl.ReloadListener",
          "name": "org.nuxeo.ecm.automation.core.impl.ReloadListener",
          "requirements": [],
          "resolutionOrder": 57,
          "services": [],
          "startOrder": 85,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.automation.core.impl.ReloadListener\">\n\n    <extension target=\"org.nuxeo.runtime.EventService\" point=\"listeners\">\n        <listener class=\"org.nuxeo.ecm.automation.core.impl.ReloadListener\">\n            <topic>org.nuxeo.runtime.reload</topic>\n        </listener>\n    </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/reload-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "@author Guillaume Renard (grenard@nuxeo.com)\n",
          "documentationHtml": "<p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.automation.coreContrib/Contributions/org.nuxeo.ecm.core.automation.coreContrib--operations",
              "id": "org.nuxeo.ecm.core.automation.coreContrib--operations",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <!-- register built-in operations -->\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.FetchContextDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.FetchContextBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.SetVar\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushDocumentList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopDocumentList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.SetInputAsVar\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentsInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobsInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RunScript\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentInputFromScript\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentsInputFromScript\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobInputFromScript\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobsInputFromScript\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.RunOperation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.RunOperationOnList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.RunInNewTransaction\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.RunDocumentChain\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.RunFileChain\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CopyDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CreateDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CreateVersion\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CheckInDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CheckOutDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RestoreVersion\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.DeleteDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.EmptyTrash\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.TrashDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.UntrashDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.FetchDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.LockDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.FetchByProperty\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.FilterDocuments\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.UnlockDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentChildren\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentChild\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentParent\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.GetLastDocumentVersion\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentVersions\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.MoveDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.ReloadDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.SaveDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.SaveSession\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentLifeCycle\">\n      <widgets>\n        <widget name=\"value\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">Transition</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">lifecycle</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>value</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentACE\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.AddPermission\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.ReplacePermission\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemovePermission\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.BlockPermissionInheritance\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.UnblockPermissionInheritance\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveDocumentACL\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.AddFacet\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveFacet\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.AddItemToListProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveItemFromListProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CopySchema\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.ResetSchema\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveProxies\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.UpdateDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.OrderDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.PublishDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.MultiPublishDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.GetDocumentBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.GetDocumentBlobs\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.GetAllDocumentBlobs\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.BulkDownload\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.PostBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.BlobToPDF\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.ConcatenatePDFs\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.ConvertBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.RunConverter\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.BlobToFile\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.CreateBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.CreateZip\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.AttachBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.SetBlobFileName\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveDocumentBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushBlobList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopBlobList\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullDocumentList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullBlobList\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.events.operations.FireEvent\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RunInputScript\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.rendering.operations.RenderDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.rendering.operations.RenderDocumentFeed\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.login.LoginAs\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.login.Logout\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.LogOperation\"/>\n\n    <!-- From presales toolkit -->\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.AddEntryToMultiValuedProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CreateProxyLive\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.GetLiveDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveEntryOfMultiValuedProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n\n    <!-- Business Operations -->\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.business.BusinessCreateOperation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.business.BusinessUpdateOperation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.business.BusinessFetchOperation\"/>\n\n    <!-- Trace related operations -->\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.traces.AutomationTraceGetOperation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.traces.AutomationTraceToggleOperation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.traces.JsonStackToggleDisplayOperation\"/>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.automation.coreContrib",
          "name": "org.nuxeo.ecm.core.automation.coreContrib",
          "requirements": [],
          "resolutionOrder": 58,
          "services": [],
          "startOrder": 121,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.automation.coreContrib\" version=\"1.0\">\n\n  <documentation>@author Guillaume Renard (grenard@nuxeo.com)</documentation>\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n             point=\"operations\">\n\n    <!-- register built-in operations -->\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.FetchContextDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.FetchContextBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.SetVar\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushDocumentList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopDocumentList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.SetInputAsVar\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentsInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobsInput\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RunScript\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentInputFromScript\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.RestoreDocumentsInputFromScript\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobInputFromScript\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.RestoreBlobsInputFromScript\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.RunOperation\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.execution.RunOperationOnList\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.execution.RunInNewTransaction\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.execution.RunDocumentChain\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.RunFileChain\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CopyDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.CreateDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.CreateVersion\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.CheckInDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.CheckOutDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RestoreVersion\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.DeleteDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.EmptyTrash\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.TrashDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.UntrashDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.FetchDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.LockDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.FetchByProperty\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.FilterDocuments\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.UnlockDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentChildren\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentChild\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentParent\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.GetLastDocumentVersion\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.GetDocumentVersions\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.MoveDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.ReloadDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.SaveDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.execution.SaveSession\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentLifeCycle\">\n      <widgets>\n        <widget name=\"value\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">Transition</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">lifecycle</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>value</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentACE\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.AddPermission\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.ReplacePermission\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemovePermission\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.BlockPermissionInheritance\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.document.UnblockPermissionInheritance\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveDocumentACL\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.AddFacet\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveFacet\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.AddItemToListProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveItemFromListProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.CopySchema\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.ResetSchema\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveProxies\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.UpdateDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.OrderDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.PublishDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.MultiPublishDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.GetDocumentBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.GetDocumentBlobs\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.blob.GetAllDocumentBlobs\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.SetDocumentBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.BulkDownload\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.PostBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.BlobToPDF\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.ConcatenatePDFs\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.ConvertBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.RunConverter\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.BlobToFile\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.CreateBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.CreateZip\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.AttachBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.blob.SetBlobFileName\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveDocumentBlob\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PushBlobList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PopBlobList\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullDocument\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullDocumentList\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullBlob\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.stack.PullBlobList\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.events.operations.FireEvent\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.RunInputScript\"/>\n\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.rendering.operations.RenderDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.rendering.operations.RenderDocumentFeed\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.login.LoginAs\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.login.Logout\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.LogOperation\"/>\n\n    <!-- From presales toolkit -->\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.AddEntryToMultiValuedProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.CreateProxyLive\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.GetLiveDocument\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.document.RemoveEntryOfMultiValuedProperty\">\n      <widgets>\n        <widget name=\"xpath\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">XPath</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">xpath</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>xpath</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n\n    <!-- Business Operations -->\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.business.BusinessCreateOperation\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.business.BusinessUpdateOperation\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.business.BusinessFetchOperation\"/>\n\n    <!-- Trace related operations -->\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.traces.AutomationTraceGetOperation\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.traces.AutomationTraceToggleOperation\"/>\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.traces.JsonStackToggleDisplayOperation\"/>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      This contribution is the default contribution for automation properties.\n\n      Here are more details about some of them:\n      <ul>\n    <li>\n        <strong>nuxeo.automation.properties.value.trim</strong>: properties are expected to be of the form \"key=value\". You may wish to trim the potential spaces around value (e.g.: \"key = value\", will result in \"value\" and not \" value\").\n        </li>\n    <li>\n        <strong>nuxeo.automation.export.aliases</strong>: if true, add an operation documentation for each alias of a given operation.\n          Mainly to be backward compatible with old Java Automation client.\n        </li>\n    <li>\n        <strong>nuxeo.automation.allowVirtualUser</strong>: define whether virtual user (non-existent user) is allowed\n          in Nuxeo automation. If allowed, Nuxeo server will not check the user existence during automation execution.\n          Set this property to true if you use Nuxeo computed user or computed group.\n        </li>\n</ul>\n\n\n      @since 8.2\n    \n",
              "documentationHtml": "<p>\nThis contribution is the default contribution for automation properties.\n</p><p>\nHere are more details about some of them:\n</p><ul><li>\n<strong>nuxeo.automation.properties.value.trim</strong>: properties are expected to be of the form &#34;key&#61;value&#34;. You may wish to trim the potential spaces around value (e.g.: &#34;key &#61; value&#34;, will result in &#34;value&#34; and not &#34; value&#34;).\n</li><li>\n<strong>nuxeo.automation.export.aliases</strong>: if true, add an operation documentation for each alias of a given operation.\nMainly to be backward compatible with old Java Automation client.\n</li><li>\n<strong>nuxeo.automation.allowVirtualUser</strong>: define whether virtual user (non-existent user) is allowed\nin Nuxeo automation. If allowed, Nuxeo server will not check the user existence during automation execution.\nSet this property to true if you use Nuxeo computed user or computed group.\n</li></ul>\n<p>\n&#64;since 8.2\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.automation.core.properties/Contributions/org.nuxeo.ecm.core.automation.core.properties--configuration",
              "id": "org.nuxeo.ecm.core.automation.core.properties--configuration",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n\n    <documentation>\n      This contribution is the default contribution for automation properties.\n\n      Here are more details about some of them:\n      <ul>\n        <li>\n          <strong>nuxeo.automation.properties.value.trim</strong>: properties are expected to be of the form \"key=value\". You may wish to trim the potential spaces around value (e.g.: \"key = value\", will result in \"value\" and not \" value\").\n        </li>\n        <li>\n          <strong>nuxeo.automation.export.aliases</strong>: if true, add an operation documentation for each alias of a given operation.\n          Mainly to be backward compatible with old Java Automation client.\n        </li>\n        <li>\n          <strong>nuxeo.automation.allowVirtualUser</strong>: define whether virtual user (non-existent user) is allowed\n          in Nuxeo automation. If allowed, Nuxeo server will not check the user existence during automation execution.\n          Set this property to true if you use Nuxeo computed user or computed group.\n        </li>\n      </ul>\n\n      @since 8.2\n    </documentation>\n\n    <property name=\"nuxeo.automation.properties.value.trim\">false</property>\n\n    <property name=\"nuxeo.automation.export.aliases\">false</property>\n\n    <property name=\"nuxeo.automation.allowVirtualUser\">false</property>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.automation.core.properties",
          "name": "org.nuxeo.ecm.core.automation.core.properties",
          "requirements": [],
          "resolutionOrder": 59,
          "services": [],
          "startOrder": 120,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.automation.core.properties\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n\n    <documentation>\n      This contribution is the default contribution for automation properties.\n\n      Here are more details about some of them:\n      <ul>\n        <li>\n          <strong>nuxeo.automation.properties.value.trim</strong>: properties are expected to be of the form \"key=value\". You may wish to trim the potential spaces around value (e.g.: \"key = value\", will result in \"value\" and not \" value\").\n        </li>\n        <li>\n          <strong>nuxeo.automation.export.aliases</strong>: if true, add an operation documentation for each alias of a given operation.\n          Mainly to be backward compatible with old Java Automation client.\n        </li>\n        <li>\n          <strong>nuxeo.automation.allowVirtualUser</strong>: define whether virtual user (non-existent user) is allowed\n          in Nuxeo automation. If allowed, Nuxeo server will not check the user existence during automation execution.\n          Set this property to true if you use Nuxeo computed user or computed group.\n        </li>\n      </ul>\n\n      @since 8.2\n    </documentation>\n\n    <property name=\"nuxeo.automation.properties.value.trim\">false</property>\n\n    <property name=\"nuxeo.automation.export.aliases\">false</property>\n\n    <property name=\"nuxeo.automation.allowVirtualUser\">false</property>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/properties-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Core IO registered marshallers set.\n  \n",
          "documentationHtml": "<p>\nCore IO registered marshallers set.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.automation.marshallers/Contributions/org.nuxeo.ecm.core.automation.marshallers--marshallers",
              "id": "org.nuxeo.ecm.core.automation.marshallers--marshallers",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <!-- blob reader -->\n    <register class=\"org.nuxeo.ecm.automation.core.io.BlobJsonReader\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.automation.marshallers",
          "name": "org.nuxeo.ecm.core.automation.marshallers",
          "requirements": [],
          "resolutionOrder": 60,
          "services": [],
          "startOrder": 125,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.automation.marshallers\" version=\"1.0.0\">\n  <documentation>\n    Core IO registered marshallers set.\n  </documentation>\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <!-- blob reader -->\n    <register class=\"org.nuxeo.ecm.automation.core.io.BlobJsonReader\" enable=\"true\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.work.service--queues",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.automation.core.impl.workmanager/Contributions/org.nuxeo.ecm.automation.core.impl.workmanager--queues",
              "id": "org.nuxeo.ecm.automation.core.impl.workmanager--queues",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.work.service",
                "name": "org.nuxeo.ecm.core.work.service",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"queues\" target=\"org.nuxeo.ecm.core.work.service\">\n    <queue id=\"blobs\">\n      <maxThreads>2</maxThreads>\n      <category>blobListZip</category>\n    </queue>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.automation.core.impl.workmanager",
          "name": "org.nuxeo.ecm.automation.core.impl.workmanager",
          "requirements": [],
          "resolutionOrder": 61,
          "services": [],
          "startOrder": 86,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.automation.core.impl.workmanager\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.work.service\" point=\"queues\">\n    <queue id=\"blobs\">\n      <maxThreads>2</maxThreads>\n      <category>blobListZip</category>\n    </queue>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/workmanager-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.automation.core.AutomationComponent",
          "documentation": "@author Bogdan Stefanescu (bs@nuxeo.com)\n",
          "documentationHtml": "<p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "descriptors": [
                "org.nuxeo.ecm.automation.core.OperationContribution"
              ],
              "documentation": "Operation registration\n",
              "documentationHtml": "<p>\nOperation registration</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/ExtensionPoints/org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "label": "operations (org.nuxeo.ecm.core.operation.OperationServiceComponent)",
              "name": "operations",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "descriptors": [
                "org.nuxeo.ecm.automation.core.TypeAdapterContribution"
              ],
              "documentation": "Type adapter registration\n",
              "documentationHtml": "<p>\nType adapter registration</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/ExtensionPoints/org.nuxeo.ecm.core.operation.OperationServiceComponent--adapters",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--adapters",
              "label": "adapters (org.nuxeo.ecm.core.operation.OperationServiceComponent)",
              "name": "adapters",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "descriptors": [
                "org.nuxeo.ecm.automation.core.OperationChainContribution"
              ],
              "documentation": "Operation Chain registration\n",
              "documentationHtml": "<p>\nOperation Chain registration</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/ExtensionPoints/org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "label": "chains (org.nuxeo.ecm.core.operation.OperationServiceComponent)",
              "name": "chains",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "descriptors": [
                "org.nuxeo.ecm.automation.core.ChainExceptionDescriptor"
              ],
              "documentation": "\n      @since 5.7.3\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n\n      Chain Exception registration.\n      Chain exception provides mean, during an Automation execution, to catch for a given chain, exception and to run\n      specific chain/operation. Filter condition (filterException extension point), order (priority) and rollback\n      options are available.\n\n      Example of chain exception:\n\n      <code>\n    <catchChain id=\"catchChainA\" onChainId=\"contributedchain\">\n        <run chainId=\"chainException\" filterId=\"filterA\" priority=\"0\" rollBack=\"false\"/>\n        <run chainId=\"chainException\" filterId=\"filterA\" priority=\"0\" rollBack=\"false\"/>\n        <run chainId=\"chainException\" filterId=\"filterB\" priority=\"10\" rollBack=\"true\"/>\n    </catchChain>\n</code>\n",
              "documentationHtml": "<p>\n&#64;since 5.7.3\n</p><p>\nChain Exception registration.\nChain exception provides mean, during an Automation execution, to catch for a given chain, exception and to run\nspecific chain/operation. Filter condition (filterException extension point), order (priority) and rollback\noptions are available.\n</p><p>\nExample of chain exception:\n</p><p>\n</p><pre><code>    &lt;catchChain id&#61;&#34;catchChainA&#34; onChainId&#61;&#34;contributedchain&#34;&gt;\n        &lt;run chainId&#61;&#34;chainException&#34; filterId&#61;&#34;filterA&#34; priority&#61;&#34;0&#34; rollBack&#61;&#34;false&#34;/&gt;\n        &lt;run chainId&#61;&#34;chainException&#34; filterId&#61;&#34;filterA&#34; priority&#61;&#34;0&#34; rollBack&#61;&#34;false&#34;/&gt;\n        &lt;run chainId&#61;&#34;chainException&#34; filterId&#61;&#34;filterB&#34; priority&#61;&#34;10&#34; rollBack&#61;&#34;true&#34;/&gt;\n    &lt;/catchChain&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/ExtensionPoints/org.nuxeo.ecm.core.operation.OperationServiceComponent--chainException",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chainException",
              "label": "chainException (org.nuxeo.ecm.core.operation.OperationServiceComponent)",
              "name": "chainException",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "descriptors": [
                "org.nuxeo.ecm.automation.core.AutomationFilterDescriptor"
              ],
              "documentation": "\n      @since 5.7.3\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n\n      Automation Filter registration. See one usage of the filter into Chain Exception extension point: chainException.\n\n      Example of Automation filter:\n\n      <code>\n    <filter id=\"filterA\">expr:@{Document['dc:title']=='file'}</filter>\n    <filter id=\"filterB\">expr:@{Document['dc:title']=='document'}</filter>\n</code>\n",
              "documentationHtml": "<p>\n&#64;since 5.7.3\n</p><p>\nAutomation Filter registration. See one usage of the filter into Chain Exception extension point: chainException.\n</p><p>\nExample of Automation filter:\n</p><p>\n</p><pre><code>    &lt;filter id&#61;&#34;filterA&#34;&gt;expr:&#64;{Document[&#39;dc:title&#39;]&#61;&#61;&#39;file&#39;}&lt;/filter&gt;\n    &lt;filter id&#61;&#34;filterB&#34;&gt;expr:&#64;{Document[&#39;dc:title&#39;]&#61;&#61;&#39;document&#39;}&lt;/filter&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/ExtensionPoints/org.nuxeo.ecm.core.operation.OperationServiceComponent--automationFilter",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--automationFilter",
              "label": "automationFilter (org.nuxeo.ecm.core.operation.OperationServiceComponent)",
              "name": "automationFilter",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "descriptors": [
                "org.nuxeo.ecm.automation.core.events.EventHandler"
              ],
              "documentation": "Core Event Handlers bound to operations\n",
              "documentationHtml": "<p>\nCore Event Handlers bound to operations</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/ExtensionPoints/org.nuxeo.ecm.core.operation.OperationServiceComponent--event-handlers",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--event-handlers",
              "label": "event-handlers (org.nuxeo.ecm.core.operation.OperationServiceComponent)",
              "name": "event-handlers",
              "version": "2023.22.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "descriptors": [
                "org.nuxeo.ecm.automation.context.ContextHelperDescriptor"
              ],
              "documentation": "\n      @since 7.3\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n      Context helper functions contribution.\n      Example:\n      <code>\n    <contextHelper\n        class=\"org.nuxeo.ecm.automation.features.PlatformFunctions\" id=\"platformFunctions\"/>\n</code>\n",
              "documentationHtml": "<p>\n&#64;since 7.3\n</p><p>\nContext helper functions contribution.\nExample:\n</p><p></p><pre><code>    &lt;contextHelper\n        class&#61;&#34;org.nuxeo.ecm.automation.features.PlatformFunctions&#34; id&#61;&#34;platformFunctions&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/ExtensionPoints/org.nuxeo.ecm.core.operation.OperationServiceComponent--contextHelpers",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--contextHelpers",
              "label": "contextHelpers (org.nuxeo.ecm.core.operation.OperationServiceComponent)",
              "name": "contextHelpers",
              "version": "2023.22.13"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--adapters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/Contributions/org.nuxeo.ecm.core.operation.OperationServiceComponent--adapters",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--adapters",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"adapters\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDocRef\" produce=\"org.nuxeo.ecm.core.api.DocumentRef\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDocModel\" produce=\"org.nuxeo.ecm.core.api.DocumentModel\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentModel\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelToDocRef\" produce=\"org.nuxeo.ecm.core.api.DocumentRef\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentRef\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefToDocModel\" produce=\"org.nuxeo.ecm.core.api.DocumentModel\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentModelList\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelListToDocRefList\" produce=\"org.nuxeo.ecm.core.api.DocumentRefList\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentModel\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelToDocRefList\" produce=\"org.nuxeo.ecm.core.api.DocumentRefList\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentModel\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelToDocModelList\" produce=\"org.nuxeo.ecm.core.api.DocumentModelList\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentRefList\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefListToDocModelList\" produce=\"org.nuxeo.ecm.core.api.DocumentModelList\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentRef\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefToDocModelList\" produce=\"org.nuxeo.ecm.core.api.DocumentModelList\"/>\n    <adapter accept=\"org.nuxeo.ecm.core.api.DocumentRef\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefToDocRefList\" produce=\"org.nuxeo.ecm.core.api.DocumentRefList\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToProperties\" produce=\"org.nuxeo.ecm.automation.core.util.Properties\"/>\n    <adapter accept=\"com.fasterxml.jackson.databind.JsonNode\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.JsonNodeToProperties\" produce=\"org.nuxeo.ecm.automation.core.util.Properties\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToURL\" produce=\"java.net.URL\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDate\" produce=\"java.util.Date\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToCalendar\" produce=\"java.util.Calendar\"/>\n    <adapter accept=\"java.util.Calendar\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.CalendarToDate\" produce=\"java.util.Date\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToList\" produce=\"org.nuxeo.ecm.automation.core.util.StringList\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToBoolean\" produce=\"java.lang.Boolean\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToInteger\" produce=\"java.lang.Integer\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToLong\" produce=\"java.lang.Long\"/>\n    <adapter accept=\"java.lang.Integer\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.IntegerToLong\" produce=\"java.lang.Long\"/>\n    <adapter accept=\"java.lang.Long\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.LongToInteger\" produce=\"java.lang.Integer\"/>\n    <adapter accept=\"[Ljava.lang.String;\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.ArrayStringToList\" produce=\"org.nuxeo.ecm.automation.core.util.StringList\"/>\n    <adapter accept=\"java.util.Collection\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.CollectionToStringList\" produce=\"org.nuxeo.ecm.automation.core.util.StringList\"/>\n    <adapter accept=\"com.fasterxml.jackson.databind.node.ObjectNode\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.ObjectNodeToMap\" produce=\"java.util.Map\"/>\n    <adapter accept=\"com.fasterxml.jackson.databind.node.ArrayNode\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.ArrayNodeToList\" produce=\"java.util.List\"/>\n    <adapter accept=\"[Ljava.lang.String;\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.ArrayStringToDocModelList\" produce=\"org.nuxeo.ecm.core.api.DocumentModelList\"/>\n    <adapter accept=\"java.lang.String\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDocModelList\" produce=\"org.nuxeo.ecm.core.api.DocumentModelList\"/>\n    <adapter accept=\"java.util.Collection\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.CollectionToDocModelList\" produce=\"org.nuxeo.ecm.core.api.DocumentModelList\"/>\n    <adapter accept=\"java.util.Collection\" class=\"org.nuxeo.ecm.automation.core.impl.adapters.CollectionToBlobList\" produce=\"org.nuxeo.ecm.automation.core.util.BlobList\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/Contributions/org.nuxeo.ecm.core.operation.OperationServiceComponent--listener",
              "id": "org.nuxeo.ecm.core.operation.OperationServiceComponent--listener",
              "registrationOrder": 47,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2023.22.13",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.automation.core.events.OperationEventListener\" name=\"opchainlistener\" postCommit=\"false\" priority=\"200\">\n    </listener>\n\n    <listener async=\"true\" class=\"org.nuxeo.ecm.automation.core.events.PostCommitOperationEventListener\" name=\"opchainpclistener\" postCommit=\"true\" priority=\"200\">\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent",
          "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
          "requirements": [
            "org.nuxeo.runtime.management.ServerLocator"
          ],
          "resolutionOrder": 806,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/Services/org.nuxeo.ecm.automation.AutomationService",
              "id": "org.nuxeo.ecm.automation.AutomationService",
              "overriden": false,
              "version": "2023.22.13"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/Services/org.nuxeo.ecm.automation.AutomationAdmin",
              "id": "org.nuxeo.ecm.automation.AutomationAdmin",
              "overriden": false,
              "version": "2023.22.13"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/Services/org.nuxeo.ecm.automation.core.events.EventHandlerRegistry",
              "id": "org.nuxeo.ecm.automation.core.events.EventHandlerRegistry",
              "overriden": false,
              "version": "2023.22.13"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/Services/org.nuxeo.ecm.automation.core.trace.TracerFactory",
              "id": "org.nuxeo.ecm.automation.core.trace.TracerFactory",
              "overriden": false,
              "version": "2023.22.13"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core/org.nuxeo.ecm.core.operation.OperationServiceComponent/Services/org.nuxeo.ecm.automation.context.ContextService",
              "id": "org.nuxeo.ecm.automation.context.ContextService",
              "overriden": false,
              "version": "2023.22.13"
            }
          ],
          "startOrder": 814,
          "version": "2023.22.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n  version=\"1.0\">\n  <!-- TODO: cannot rename this component since studio is using the old name - fix this\n    <component name=\"org.nuxeo.ecm.automation.core.AutomationComponent\" version=\"1.0\">\n  -->\n\n  <documentation>@author Bogdan Stefanescu (bs@nuxeo.com)</documentation>\n\n  <implementation class=\"org.nuxeo.ecm.automation.core.AutomationComponent\" />\n\n  <require>org.nuxeo.runtime.management.ServerLocator</require>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.automation.AutomationService\" />\n    <provide interface=\"org.nuxeo.ecm.automation.AutomationAdmin\" />\n    <provide\n            interface=\"org.nuxeo.ecm.automation.core.events.EventHandlerRegistry\" />\n    <provide interface=\"org.nuxeo.ecm.automation.core.trace.TracerFactory\" />\n    <provide interface=\"org.nuxeo.ecm.automation.context.ContextService\" />\n  </service>\n\n  <extension-point name=\"operations\">\n    <documentation>Operation registration</documentation>\n    <object class=\"org.nuxeo.ecm.automation.core.OperationContribution\" />\n  </extension-point>\n\n  <extension-point name=\"adapters\">\n    <documentation>Type adapter registration</documentation>\n    <object class=\"org.nuxeo.ecm.automation.core.TypeAdapterContribution\" />\n  </extension-point>\n\n  <extension-point name=\"chains\">\n    <documentation>Operation Chain registration</documentation>\n    <object class=\"org.nuxeo.ecm.automation.core.OperationChainContribution\" />\n  </extension-point>\n\n  <extension-point name=\"chainException\">\n    <documentation>\n      @since 5.7.3\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n\n      Chain Exception registration.\n      Chain exception provides mean, during an Automation execution, to catch for a given chain, exception and to run\n      specific chain/operation. Filter condition (filterException extension point), order (priority) and rollback\n      options are available.\n\n      Example of chain exception:\n\n      <code>\n        <catchChain id=\"catchChainA\" onChainId=\"contributedchain\">\n          <run chainId=\"chainException\" priority=\"0\" rollBack=\"false\" filterId=\"filterA\"/>\n          <run chainId=\"chainException\" priority=\"0\" rollBack=\"false\" filterId=\"filterA\"/>\n          <run chainId=\"chainException\" priority=\"10\" rollBack=\"true\" filterId=\"filterB\"/>\n        </catchChain>\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.automation.core.ChainExceptionDescriptor\"/>\n  </extension-point>\n\n  <extension-point name=\"automationFilter\">\n    <documentation>\n      @since 5.7.3\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n\n      Automation Filter registration. See one usage of the filter into Chain Exception extension point: chainException.\n\n      Example of Automation filter:\n\n      <code>\n        <filter id=\"filterA\">expr:@{Document['dc:title']=='file'}</filter>\n        <filter id=\"filterB\">expr:@{Document['dc:title']=='document'}</filter>\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.automation.core.AutomationFilterDescriptor\"/>\n  </extension-point>\n\n  <extension-point name=\"event-handlers\">\n    <documentation>Core Event Handlers bound to operations</documentation>\n    <object class=\"org.nuxeo.ecm.automation.core.events.EventHandler\" />\n  </extension-point>\n\n  <extension-point name=\"contextHelpers\">\n    <documentation>\n      @since 7.3\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n      Context helper functions contribution.\n      Example:\n      <code>\n        <contextHelper id=\"platformFunctions\" class=\"org.nuxeo.ecm.automation.features.PlatformFunctions\"/>\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.automation.context.ContextHelperDescriptor\"/>\n  </extension-point>\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"adapters\">\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDocRef\"\n      accept=\"java.lang.String\" produce=\"org.nuxeo.ecm.core.api.DocumentRef\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDocModel\"\n      accept=\"java.lang.String\" produce=\"org.nuxeo.ecm.core.api.DocumentModel\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelToDocRef\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentModel\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentRef\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefToDocModel\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentRef\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentModel\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelListToDocRefList\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentModelList\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentRefList\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelToDocRefList\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentModel\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentRefList\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocModelToDocModelList\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentModel\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentModelList\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefListToDocModelList\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentRefList\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentModelList\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefToDocModelList\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentRef\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentModelList\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.DocRefToDocRefList\"\n      accept=\"org.nuxeo.ecm.core.api.DocumentRef\"\n      produce=\"org.nuxeo.ecm.core.api.DocumentRefList\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToProperties\"\n      accept=\"java.lang.String\"\n      produce=\"org.nuxeo.ecm.automation.core.util.Properties\" />\n    <adapter\n      class=\"org.nuxeo.ecm.automation.core.impl.adapters.JsonNodeToProperties\"\n      accept=\"com.fasterxml.jackson.databind.JsonNode\"\n      produce=\"org.nuxeo.ecm.automation.core.util.Properties\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToURL\"\n      accept=\"java.lang.String\" produce=\"java.net.URL\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDate\"\n      accept=\"java.lang.String\" produce=\"java.util.Date\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToCalendar\"\n      accept=\"java.lang.String\" produce=\"java.util.Calendar\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.CalendarToDate\"\n      accept=\"java.util.Calendar\" produce=\"java.util.Date\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToList\"\n      accept=\"java.lang.String\"\n      produce=\"org.nuxeo.ecm.automation.core.util.StringList\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToBoolean\"\n      accept=\"java.lang.String\"\n      produce=\"java.lang.Boolean\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToInteger\"\n      accept=\"java.lang.String\"\n      produce=\"java.lang.Integer\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToLong\"\n      accept=\"java.lang.String\"\n      produce=\"java.lang.Long\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.IntegerToLong\"\n      accept=\"java.lang.Integer\"\n      produce=\"java.lang.Long\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.LongToInteger\"\n      accept=\"java.lang.Long\"\n      produce=\"java.lang.Integer\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.ArrayStringToList\"\n      accept=\"[Ljava.lang.String;\"\n      produce=\"org.nuxeo.ecm.automation.core.util.StringList\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.CollectionToStringList\"\n             accept=\"java.util.Collection\"\n             produce=\"org.nuxeo.ecm.automation.core.util.StringList\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.ObjectNodeToMap\"\n      accept=\"com.fasterxml.jackson.databind.node.ObjectNode\"\n      produce=\"java.util.Map\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.ArrayNodeToList\"\n      accept=\"com.fasterxml.jackson.databind.node.ArrayNode\"\n      produce=\"java.util.List\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.ArrayStringToDocModelList\"\n             accept=\"[Ljava.lang.String;\"\n             produce=\"org.nuxeo.ecm.core.api.DocumentModelList\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.StringToDocModelList\"\n             accept=\"java.lang.String\"\n             produce=\"org.nuxeo.ecm.core.api.DocumentModelList\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.CollectionToDocModelList\"\n             accept=\"java.util.Collection\"\n             produce=\"org.nuxeo.ecm.core.api.DocumentModelList\" />\n    <adapter class=\"org.nuxeo.ecm.automation.core.impl.adapters.CollectionToBlobList\"\n             accept=\"java.util.Collection\"\n             produce=\"org.nuxeo.ecm.automation.core.util.BlobList\" />\n  </extension>\n\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n\n    <listener name=\"opchainlistener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.ecm.automation.core.events.OperationEventListener\"\n      priority=\"200\">\n    </listener>\n\n    <listener name=\"opchainpclistener\" async=\"true\" postCommit=\"true\"\n      class=\"org.nuxeo.ecm.automation.core.events.PostCommitOperationEventListener\"\n      priority=\"200\">\n    </listener>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/AutomationService.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-automation-core-2023.22.13.jar",
      "groupId": "org.nuxeo.ecm.automation",
      "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.core",
      "id": "org.nuxeo.ecm.automation.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven 3.9.6\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.12\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 5.4.2.qualifier\r\nBundle-Name: Nuxeo Automation Core\r\nBundle-SymbolicName: org.nuxeo.ecm.automation.core;singleton:=true\r\nBundle-Vendor: Nuxeo\r\nExport-Package: org.nuxeo.ecm.automation,org.nuxeo.ecm.automation.core,o\r\n rg.nuxeo.ecm.automation.core.annotations,org.nuxeo.ecm.automation.core.\r\n collectors,org.nuxeo.ecm.automation.core.doc,org.nuxeo.ecm.automation.c\r\n ore.events,org.nuxeo.ecm.automation.core.events.operations,org.nuxeo.ec\r\n m.automation.core.impl,org.nuxeo.ecm.automation.core.impl.adapters,org.\r\n nuxeo.ecm.automation.core.mail,org.nuxeo.ecm.automation.core.operations\r\n ,org.nuxeo.ecm.automation.core.operations.blob,org.nuxeo.ecm.automation\r\n .core.operations.document,org.nuxeo.ecm.automation.core.operations.exec\r\n ution,org.nuxeo.ecm.automation.core.operations.stack,org.nuxeo.ecm.auto\r\n mation.core.rendering,org.nuxeo.ecm.automation.core.rendering.operation\r\n s,org.nuxeo.ecm.automation.core.scripting,org.nuxeo.ecm.automation.core\r\n .util\r\nBundle-ActivationPolicy: lazy\r\nNuxeo-Component: OSGI-INF/AutomationService.xml,OSGI-INF/reload-contrib.\r\n xml,OSGI-INF/operations-contrib.xml,OSGI-INF/properties-contrib.xml,OSG\r\n I-INF/marshallers-contrib.xml,OSGI-INF/workmanager-contrib.xml\r\nImport-Package: freemarker.core,freemarker.template,groovy.lang;resoluti\r\n on:=optional,javax.mail,javax.mail.internet,net.sf.json,org.apache.comm\r\n ons.lang,org.apache.commons.logging,org.codehaus.groovy.control;resolut\r\n ion:=optional,org.codehaus.groovy.runtime;resolution:=optional,org.mvel\r\n 2,org.mvel2.templates,org.nuxeo.common,org.nuxeo.common.utils,org.nuxeo\r\n .common.xmap.annotation,org.nuxeo.ecm.core.api,org.nuxeo.ecm.core.api.b\r\n lobholder,org.nuxeo.ecm.core.api.impl,org.nuxeo.ecm.core.api.impl.blob,\r\n org.nuxeo.ecm.core.api.model,org.nuxeo.ecm.core.api.model.impl,org.nuxe\r\n o.ecm.core.api.repository,org.nuxeo.ecm.core.api.security,org.nuxeo.ecm\r\n .core.api.security.impl,org.nuxeo.ecm.core.convert.api,org.nuxeo.ecm.co\r\n re.event,org.nuxeo.ecm.core.event.impl,org.nuxeo.ecm.core.schema,org.nu\r\n xeo.ecm.core.schema.types,org.nuxeo.ecm.core.schema.types.primitives,or\r\n g.nuxeo.ecm.core.schema.utils,org.nuxeo.ecm.core.versioning,org.nuxeo.e\r\n cm.platform.rendering.api,org.nuxeo.ecm.platform.rendering.fm,org.nuxeo\r\n .runtime.api,org.nuxeo.runtime.model,org.nuxeo.runtime.services.resourc\r\n e,org.nuxeo.runtime.transaction,org.osgi.framework;version=\"1.5.0\"\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\n\r\n",
      "maxResolutionOrder": 806,
      "minResolutionOrder": 57,
      "packages": [],
      "requirements": [],
      "version": "2023.22.13"
    }
  ],
  "creationDate": 1732717764661,
  "key": "Nuxeo Platform-2023.22",
  "name": "Nuxeo Platform",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Users & Groups",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Login As the given user. If no user is given a system login is performed. This is a void operations - the input will be returned back as the output.",
      "hierarchyPath": "/op:Auth.LoginAs",
      "label": "Login As",
      "name": "Auth.LoginAs",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.login.LoginAs",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void",
        "document",
        "document"
      ],
      "url": "Auth.LoginAs",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Users & Groups",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Perform a logout. This should be used only after using the Login As operation to restore original login. This is a void operations - the input will be returned back as the output.",
      "hierarchyPath": "/op:Auth.Logout",
      "label": "Logout",
      "name": "Auth.Logout",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.login.Logout",
      "params": [],
      "signature": [
        "void",
        "void",
        "document",
        "document"
      ],
      "url": "Auth.Logout",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Attach"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Attach the input file to the document given as a parameter. If the xpath points to a blob list then the blob is appended to the list, otherwise the xpath should point to a blob property. If the save parameter is set the document modification will be automatically saved. Return the blob.",
      "hierarchyPath": "/op:Blob.AttachOnDocument",
      "label": "Attach File",
      "name": "Blob.AttachOnDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.AttachBlob",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "document",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [
            "file:content"
          ],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "bloblist",
        "blob",
        "blob"
      ],
      "url": "Blob.AttachOnDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Prepare a Zip of a list of documents.",
      "hierarchyPath": "/op:Blob.BulkDownload",
      "label": "Bulk Download",
      "name": "Blob.BulkDownload",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.BulkDownload",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "filename",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "documents",
        "blob"
      ],
      "url": "Blob.BulkDownload",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Given a File document holding a pdf on the file:content property and 2 pdfs on the files:files property, the following operation will provide a pdf that is the result of the merge of all the pdfs, with the content of the one in file:content property first.",
      "hierarchyPath": "/op:Blob.ConcatenatePDFs",
      "label": "Concatenate PDFs",
      "name": "Blob.ConcatenatePDFs",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.ConcatenatePDFs",
      "params": [
        {
          "description": "The merge pdf result filename.",
          "isRequired": true,
          "name": "filename",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "Optional blob reference in context to append in first place.",
          "isRequired": false,
          "name": "blob_to_append",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "blob",
        "blob",
        "blob"
      ],
      "url": "Blob.ConcatenatePDFs",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Convert the input file to a file of the given mime-type and return the new file.",
      "hierarchyPath": "/op:Blob.Convert",
      "label": "Convert to given mime-type",
      "name": "Blob.Convert",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.ConvertBlob",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "mimeType",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "bloblist",
        "blob",
        "blob",
        "document",
        "blob"
      ],
      "since": "5.7",
      "url": "Blob.Convert",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Create"
      ],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Creates a file from a given URL. The file parameter specifies how to retrieve the file content. It should be an URL to the file you want to use as the source. You can also use an expression to get an URL from the context. Returns the created file.",
      "hierarchyPath": "/op:Blob.CreateFromURL",
      "label": "File From URL",
      "name": "Blob.CreateFromURL",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.CreateBlob",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "file",
          "order": 0,
          "type": "resource",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "encoding",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "filename",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "mime-type",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Blob.CreateFromURL",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Creates a zip file from the input file(s). If no file name is given, the first file name in the input will be used. Returns the zip file.",
      "hierarchyPath": "/op:Blob.CreateZip",
      "label": "Zip",
      "name": "Blob.CreateZip",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.CreateZip",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "filename",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "blob",
        "blob",
        "blob"
      ],
      "url": "Blob.CreateZip",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.ToFile"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Save the input blob(s) as a file(s) into the given target directory. The blob(s) filename is used as the file name. You can specify an optional <b>prefix</b> string to prepend to the file name. Return back the blob(s).",
      "hierarchyPath": "/op:Blob.ExportToFS",
      "label": "Export to File",
      "name": "Blob.ExportToFS",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.BlobToFile",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "directory",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "prefix",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "blob",
        "blob",
        "bloblist",
        "bloblist"
      ],
      "url": "Blob.ExportToFS",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Post"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Post the input file to a target HTTP URL. Returns back the input file.",
      "hierarchyPath": "/op:Blob.PostToURL",
      "label": "HTTP Post",
      "name": "Blob.PostToURL",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.PostBlob",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "url",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "blob",
        "blob",
        "bloblist",
        "bloblist"
      ],
      "url": "Blob.PostToURL",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Remove"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Remove the file attached to the input document as specified by the 'xpath' parameter. If the 'xpath' point to a blob list then the list will be cleared. If the file to remove is part of a list it will be removed from the list otherwise the 'xpath' should point to a blob property that will be removed. If the save parameter is set the document modification will be automatically saved. Return the document.",
      "hierarchyPath": "/op:Blob.RemoveFromDocument",
      "label": "Remove File",
      "name": "Blob.RemoveFromDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemoveDocumentBlob",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [
            "file:content"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Blob.RemoveFromDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Simply call a converter based on the 'converter' parameter. You can pass the converter properties with the 'properties' parameter.",
      "hierarchyPath": "/op:Blob.RunConverter",
      "label": "Blob.RunConverter",
      "name": "Blob.RunConverter",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.RunConverter",
      "params": [
        {
          "description": "The name of the converter to call",
          "isRequired": true,
          "name": "converter",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "The converter parameters to pass",
          "isRequired": false,
          "name": "parameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "blob",
        "blob"
      ],
      "since": "7.1",
      "url": "Blob.RunConverter",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Convert the input file to a PDF and return the new file.",
      "hierarchyPath": "/op:Blob.ToPDF",
      "label": "Convert To PDF",
      "name": "Blob.ToPDF",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.BlobToPDF",
      "params": [],
      "signature": [
        "bloblist",
        "bloblist",
        "blob",
        "blob",
        "document",
        "blob"
      ],
      "url": "Blob.ToPDF",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Business",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "This operation map pojo client side to document adapter server side and create NX document assuming that pojo and adapter have both properties in common.",
      "hierarchyPath": "/op:Business.BusinessCreateOperation",
      "label": "BusinessCreateOperation",
      "name": "Business.BusinessCreateOperation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.business.BusinessCreateOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "parentPath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "businessadapter",
        "businessadapter"
      ],
      "url": "Business.BusinessCreateOperation",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Business",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "This operation map pojo client side to document adapter server side and fetch the related NX document.",
      "hierarchyPath": "/op:Business.BusinessFetchOperation",
      "label": "BusinessFetchOperation",
      "name": "Business.BusinessFetchOperation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.business.BusinessFetchOperation",
      "params": [],
      "signature": [
        "businessadapter",
        "businessadapter"
      ],
      "url": "Business.BusinessFetchOperation",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Business",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "This operation map pojo client side to document adapter server side and update the related NX document.",
      "hierarchyPath": "/op:Business.BusinessUpdateOperation",
      "label": "BusinessUpdateOperation",
      "name": "Business.BusinessUpdateOperation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.business.BusinessUpdateOperation",
      "params": [],
      "signature": [
        "businessadapter",
        "businessadapter"
      ],
      "url": "Business.BusinessUpdateOperation",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Fetch the input of the context as a document or list of documents. The document will become the input for the next operation.",
      "hierarchyPath": "/op:Context.FetchDocument",
      "label": "Context Document(s)",
      "name": "Context.FetchDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.FetchContextDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Context.FetchDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Fetch the input of the context as a file or list of files. The file(s) will become the input for the next operation.",
      "hierarchyPath": "/op:Context.FetchFile",
      "label": "Context File(s)",
      "name": "Context.FetchFile",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.FetchContextBlob",
      "params": [],
      "signature": [
        "blob",
        "blob",
        "bloblist",
        "bloblist"
      ],
      "url": "Context.FetchFile",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Pop"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the last saved input file in the context input stack. This operation must be used only if a PUSH operation was previously made. Return the last <i>pushed</i> file.",
      "hierarchyPath": "/op:Context.PopBlob",
      "label": "Pop File",
      "name": "Context.PopBlob",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PopBlob",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Context.PopBlob",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.PopList"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the last saved input file list in the context input stack",
      "hierarchyPath": "/op:Context.PopBlobList",
      "label": "Pop File List",
      "name": "Context.PopBlobList",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PopBlobList",
      "params": [],
      "signature": [
        "void",
        "bloblist"
      ],
      "url": "Context.PopBlobList",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.Pop"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the last saved input document in the context input stack. This operation must be used only if a PUSH operation was previously made. Return the last <i>pushed</i> document.",
      "hierarchyPath": "/op:Context.PopDocument",
      "label": "Pop Document",
      "name": "Context.PopDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PopDocument",
      "params": [],
      "signature": [
        "void",
        "document"
      ],
      "url": "Context.PopDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.PopList"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the last saved input document list in the context input stack",
      "hierarchyPath": "/op:Context.PopDocumentList",
      "label": "Pop Document List",
      "name": "Context.PopDocumentList",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PopDocumentList",
      "params": [],
      "signature": [
        "void",
        "documents"
      ],
      "url": "Context.PopDocumentList",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Pull"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the last saved input file in the context input stack. This operation must be used only if a PUSH operation was previously made. Return the first <i>pushed</i> file.",
      "hierarchyPath": "/op:Context.PullBlob",
      "label": "Pull File",
      "name": "Context.PullBlob",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PullBlob",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Context.PullBlob",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.PullList"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the first saved input file list in the context input stack",
      "hierarchyPath": "/op:Context.PullBlobList",
      "label": "Pull File List",
      "name": "Context.PullBlobList",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PullBlobList",
      "params": [],
      "signature": [
        "void",
        "bloblist"
      ],
      "url": "Context.PullBlobList",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.Pull"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the first saved input document in the context input stack. This operation must be used only if a PUSH operation was previously made. Return the first <i>pushed</i> document.",
      "hierarchyPath": "/op:Context.PullDocument",
      "label": "Pull Document",
      "name": "Context.PullDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PullDocument",
      "params": [],
      "signature": [
        "void",
        "document"
      ],
      "url": "Context.PullDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.PullList"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the first saved input document list in the context input stack",
      "hierarchyPath": "/op:Context.PullDocumentList",
      "label": "Pull Document List",
      "name": "Context.PullDocumentList",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PullDocumentList",
      "params": [],
      "signature": [
        "void",
        "documents"
      ],
      "url": "Context.PullDocumentList",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Push"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Push the input file on the context stack. The file can be restored later as the input using the corrresponding pop operation. Returns the input file.",
      "hierarchyPath": "/op:Context.PushBlob",
      "label": "Push File",
      "name": "Context.PushBlob",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PushBlob",
      "params": [],
      "signature": [
        "blob",
        "blob"
      ],
      "url": "Context.PushBlob",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.PushList"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Push the input file list on the context stack. The file list can be restored later as the input using the corrresponding pop operation. Returns the input file list.",
      "hierarchyPath": "/op:Context.PushBlobList",
      "label": "Push File List",
      "name": "Context.PushBlobList",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PushBlobList",
      "params": [],
      "signature": [
        "bloblist",
        "bloblist"
      ],
      "url": "Context.PushBlobList",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.Push"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Push the input document on the context stack. The document can be restored later as the input using the corrresponding pop operation. Returns the input document.",
      "hierarchyPath": "/op:Context.PushDocument",
      "label": "Push Document",
      "name": "Context.PushDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PushDocument",
      "params": [],
      "signature": [
        "document",
        "document"
      ],
      "url": "Context.PushDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.PushList"
      ],
      "category": "Push & Pop",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Push the input document list on the context stack. The document list can be restored later as the input using the corrresponding pop operation. Returns the input document list.",
      "hierarchyPath": "/op:Context.PushDocumentList",
      "label": "Push Document List",
      "name": "Context.PushDocumentList",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.stack.PushDocumentList",
      "params": [],
      "signature": [
        "documents",
        "documents"
      ],
      "url": "Context.PushDocumentList",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the file input from a context variable given its name. Return the file.",
      "hierarchyPath": "/op:Context.RestoreBlobInput",
      "label": "Restore File Input",
      "name": "Context.RestoreBlobInput",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreBlobInput",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Context.RestoreBlobInput",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run a script and return the result blob object of the script the output of the operation",
      "hierarchyPath": "/op:Context.RestoreBlobInputFromScript",
      "label": "Restore input blob from a script",
      "name": "Context.RestoreBlobInputFromScript",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreBlobInputFromScript",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "script",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TextArea"
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Context.RestoreBlobInputFromScript",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the file list input from a context variable given its name. Return the files.",
      "hierarchyPath": "/op:Context.RestoreBlobsInput",
      "label": "Restore Files Input",
      "name": "Context.RestoreBlobsInput",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreBlobsInput",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "bloblist"
      ],
      "url": "Context.RestoreBlobsInput",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run a script and return the result Blobs object of the script the output of the operation",
      "hierarchyPath": "/op:Context.RestoreBlobsInputFromScript",
      "label": "Restore input blobs from a script",
      "name": "Context.RestoreBlobsInputFromScript",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreBlobsInputFromScript",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "script",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TextArea"
        }
      ],
      "signature": [
        "void",
        "bloblist"
      ],
      "url": "Context.RestoreBlobsInputFromScript",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the document input from a context variable given its name. Return the document.",
      "hierarchyPath": "/op:Context.RestoreDocumentInput",
      "label": "Restore Document Input",
      "name": "Context.RestoreDocumentInput",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreDocumentInput",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "document"
      ],
      "url": "Context.RestoreDocumentInput",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run a script and return the result Document object of the script the output of the operation",
      "hierarchyPath": "/op:Context.RestoreDocumentInputFromScript",
      "label": "Restore input document from a script",
      "name": "Context.RestoreDocumentInputFromScript",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreDocumentInputFromScript",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "script",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TextArea"
        }
      ],
      "signature": [
        "void",
        "document"
      ],
      "url": "Context.RestoreDocumentInputFromScript",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restore the document list input from a context variable given its name. Return the document list.",
      "hierarchyPath": "/op:Context.RestoreDocumentsInput",
      "label": "Restore Documents Input",
      "name": "Context.RestoreDocumentsInput",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreDocumentsInput",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "documents"
      ],
      "url": "Context.RestoreDocumentsInput",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run a script and return the result documents object of the script the output of the operation",
      "hierarchyPath": "/op:Context.RestoreDocumentsInputFromScript",
      "label": "Restore input documents from a script",
      "name": "Context.RestoreDocumentsInputFromScript",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RestoreDocumentsInputFromScript",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "script",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TextArea"
        }
      ],
      "signature": [
        "void",
        "documents"
      ],
      "url": "Context.RestoreDocumentsInputFromScript",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Flow",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run an operation chain in a separate tx. The 'parameters' injected are accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
      "hierarchyPath": "/op:Context.RunDocumentOperationInNewTx",
      "label": "Run Document Chain in new Tx",
      "name": "Context.RunDocumentOperationInNewTx",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.execution.RunInNewTransaction",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "isolate",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": "Accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
          "isRequired": false,
          "name": "parameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "rollbackGlobalOnError",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "timeout",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "Context.RunDocumentOperationInNewTx",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Set a context variable that points to the current input object. You must give a name for the variable. This operation works on any input type and return back the input as the output.",
      "hierarchyPath": "/op:Context.SetInputAsVar",
      "label": "Set Context Variable From Input",
      "name": "Context.SetInputAsVar",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.SetInputAsVar",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "Context.SetInputAsVar",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Set a context variable given a name and the value. To compute the value at runtime from the current context you should use an EL expression as the value. This operation works on any input type and return back the input as the output.",
      "hierarchyPath": "/op:Context.SetVar",
      "label": "Set Context Variable",
      "name": "Context.SetVar",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.SetVar",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "value",
          "order": 0,
          "type": "object",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "Context.SetVar",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.SetACE"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Set Acces Control Entry on the input document(s). Returns the document(s).",
      "hierarchyPath": "/op:Document.AddACE",
      "label": "Set ACL",
      "name": "Document.AddACE",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.SetDocumentACE",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "permission",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "user",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "acl",
          "order": 0,
          "type": "string",
          "values": [
            "local"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "grant",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "overwrite",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.AddACE",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "AddEntryToMultivaluedProperty",
        "DocumentMultivaluedProperty.addItem"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Add value into the field expressed by the xpath parameter. This field must be a multivalued metadata.<p> 'checkExists' parameter enables to add value only if doesn't already exists in the field: <ul><li> if checked, the value will not be added if it exists already in the list</li><li>if not checked the value will be always added</li</ul>.<p> Remark: <b>only works for a field that stores a list of scalars (string, boolean, date, int, long) and not list of complex types.</b></p><p>Save parameter automatically saves the document in the database. It has to be turned off when this operation is used in the context of the empty document created, about to create, before document modification, document modified events.</p>",
      "hierarchyPath": "/op:Document.AddEntryToMultivaluedProperty",
      "label": "Add entry into multi-valued metadata",
      "name": "Document.AddEntryToMultivaluedProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.AddEntryToMultiValuedProperty",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "value",
          "order": 0,
          "type": "serializable",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "checkExists",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.AddEntryToMultivaluedProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.AddFacet"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Adds the facet to the document. <p>WARNING: The save parameter is true by default, which means the document is saved in the database after adding the facet. It must be set to false when the operation is used in the context of an event that will fail if the document is saved (empty document created, about to create, before modification, ...).</p>",
      "hierarchyPath": "/op:Document.AddFacet",
      "label": "Add Facet",
      "name": "Document.AddFacet",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.AddFacet",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "facet",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.AddFacet",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.AddItemToListProperty"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "This operation can add new entries to a multivalued complex property. The xpath parameter is the property that should be updated (e.g.: contract:customers). The value parameter is a String containing the JSON-formatted list of entries to add. E.g.: assuming a Contract document type holding customers, each having a firstName and lastName property: [{\"lastName\":\"Norris\", \"firstName\": \"Chuck\"}, {\"lastName\":\"Lee\", \"firstName\": \"Bruce\"}] . Activating the save parameter forces the changes to be written in database immediately (at the cost of performance loss), otherwise changes made to the document will be written in bulk when the chain succeeds. <p>Save parameter has to be turned off when this operation is used in the context of the empty document created, about to create, before document modification, document modified events.</p>",
      "hierarchyPath": "/op:Document.AddItemToListProperty",
      "label": "Adds an Entry Into a Multivalued Complex Property",
      "name": "Document.AddItemToListProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.AddItemToListProperty",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "complexJsonProperties",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.AddItemToListProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.AddACL"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Add Permission on the input document(s). Returns the document(s).",
      "hierarchyPath": "/op:Document.AddPermission",
      "label": "Add Permission",
      "name": "Document.AddPermission",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.AddPermission",
      "params": [
        {
          "description": "ACE permission.",
          "isRequired": true,
          "name": "permission",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACL name.",
          "isRequired": false,
          "name": "acl",
          "order": 0,
          "type": "string",
          "values": [
            "local"
          ],
          "widget": null
        },
        {
          "description": "ACE begin date.",
          "isRequired": false,
          "name": "begin",
          "order": 0,
          "type": "date",
          "values": [],
          "widget": null
        },
        {
          "description": "Block inheritance or not.",
          "isRequired": false,
          "name": "blockInheritance",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": "Comment",
          "isRequired": false,
          "name": "comment",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACE target user/group.",
          "isRequired": false,
          "name": "email",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACE end date.",
          "isRequired": false,
          "name": "end",
          "order": 0,
          "type": "date",
          "values": [],
          "widget": null
        },
        {
          "description": "Notify the user or not",
          "isRequired": false,
          "name": "notify",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": "ACE target user/group.",
          "isRequired": false,
          "name": "username",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACE target set of users and/or groups.",
          "isRequired": false,
          "name": "users",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.AddPermission",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Block the permission inheritance on the input document(s). Returns the document(s).",
      "hierarchyPath": "/op:Document.BlockPermissionInheritance",
      "label": "Block Permission Inheritance",
      "name": "Document.BlockPermissionInheritance",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.BlockPermissionInheritance",
      "params": [
        {
          "description": "ACL name.",
          "isRequired": false,
          "name": "acl",
          "order": 0,
          "type": "string",
          "values": [
            "local"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.BlockPermissionInheritance",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Checks in the input document. Returns back the document.",
      "hierarchyPath": "/op:Document.CheckIn",
      "label": "Check In",
      "name": "Document.CheckIn",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.CheckInDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "version",
          "order": 0,
          "type": "string",
          "values": [
            "none",
            "minor",
            "major"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "comment",
          "order": 1,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "versionVarName",
          "order": 2,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.CheckIn",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Checks out the input document. Returns back the document.",
      "hierarchyPath": "/op:Document.CheckOut",
      "label": "Check Out",
      "name": "Document.CheckOut",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.CheckOutDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.CheckOut",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Copy the input document into the given Folderish. The name parameter will be used as the copy name otherwise if not specified the original name will be preserved. The target Folderish can be specified as an absolute or relative path (relative to the input document) as an UID or by using an EL expression. Return the newly created document (the copy). The document is copied with its children recursively. The resetLifeCycle parameter allows to reset the life cycle of the copied document.",
      "hierarchyPath": "/op:Document.Copy",
      "label": "Copy",
      "name": "Document.Copy",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.CopyDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "target",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "resetLifeCycle",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Copy",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Copy all the properties from the schema of the source into the input document. Either sourceId or sourcePath parameter should be filled. When both are filled, sourceId will be used. If saveDocument is true, the document is saved. If save is true, the session is saved (setting save to true and saveDocument to false has no effect, the session will not be saved)",
      "hierarchyPath": "/op:Document.CopySchema",
      "label": "Copy Schema",
      "name": "Document.CopySchema",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.CopySchema",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "schema",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "saveDocument",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sourceId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sourcePath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.CopySchema",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Create a new document in the input folder. You can initialize the document properties using the 'properties' parameter. The properties are specified as <i>key=value</i> pairs separated by a new line. The key used for a property is the property xpath. To specify multi-line values, you can use a \\ character followed by a new line. <p>Example:<pre>dc:title=The Document Title<br>dc:description=foo bar</pre>. Returns the created document.",
      "hierarchyPath": "/op:Document.Create",
      "label": "Create",
      "name": "Document.Create",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.CreateDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "type",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "properties",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Create",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "CreateProxyLive"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "This operation will create a proxy that points the given document as input. This is like a symbolic link for File System. The proxy will be created into the destination specified as parameter. <p>The document returned is the proxy live.<p> Remark: <b>you will have a strange behavior if the input is a folderish.</b>",
      "hierarchyPath": "/op:Document.CreateLiveProxy",
      "label": "Create Proxy Live",
      "name": "Document.CreateLiveProxy",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.CreateProxyLive",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "Destination Path",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.CreateLiveProxy",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Create a new version for the input document. Any modification made on the document by the chain will be automatically saved. Increment version if this was specified through the 'snapshot' parameter. This operation should not be used in the context of the empty document created, about to create, before document modification, document modified events. Returns the live document (not the version).",
      "hierarchyPath": "/op:Document.CreateVersion",
      "label": "Snapshot Version",
      "name": "Document.CreateVersion",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.CreateVersion",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "increment",
          "order": 0,
          "type": "string",
          "values": [
            "None",
            "Minor",
            "Major"
          ],
          "widget": "Option"
        },
        {
          "description": "Save the document in the session after versioning",
          "isRequired": false,
          "name": "saveDocument",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": "Check"
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.CreateVersion",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Delete the input document. The previous context input will be restored for the next operation.",
      "hierarchyPath": "/op:Document.Delete",
      "label": "Delete",
      "name": "Document.Delete",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.DeleteDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Delete",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Emtpy a folder's trash by permanently deleting documents marked as trashed.",
      "hierarchyPath": "/op:Document.EmptyTrash",
      "label": "Empty Trash",
      "name": "Document.EmptyTrash",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.EmptyTrash",
      "params": [
        {
          "description": "A Folderish document whose trash will be emptied",
          "isRequired": true,
          "name": "parent",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "Document.EmptyTrash",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "For each specified string property value, fetch all documents that match the property and the optional where clause. Matching documents are collected into a list and the returned to the next operation. The operation has no input.",
      "hierarchyPath": "/op:Document.FetchByProperty",
      "label": "Fetch By Property",
      "name": "Document.FetchByProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.FetchByProperty",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "property",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "values",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "documents"
      ],
      "url": "Document.FetchByProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Filter the input list of documents given a condition. The condition can be expressed using 4 parameters: types, facets, lifecycle and condition. If more than one parameter is specified an AND will be used to group conditions. <br>The 'types' parameter can take a comma separated list of document type: File,Note.<br>The 'facet' parameter can take a single facet name.<br> The 'life cycle' parameter takes a name of a life cycle state the document should have.<br>The 'condition' parameter can take any EL expression.<p>Returns the list of documents that match the filter condition.",
      "hierarchyPath": "/op:Document.Filter",
      "label": "Filter List",
      "name": "Document.Filter",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.FilterDocuments",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "class",
          "order": 0,
          "type": "string",
          "values": [
            "Any",
            "Regular Document",
            "Document Link",
            "Published Document",
            "Document Proxy",
            "Document Version",
            "Immutable Document",
            "Mutable Document"
          ],
          "widget": "Option"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "condition",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "facet",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "lifecycle",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "pathStartsWith",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "types",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "documents",
        "documents",
        "documents"
      ],
      "url": "Document.Filter",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.SetLifeCycle"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Follow the given transition on the input document life cycle state",
      "hierarchyPath": "/op:Document.FollowLifecycleTransition",
      "label": "Follow Life Cycle Transition",
      "name": "Document.FollowLifecycleTransition",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.SetDocumentLifeCycle",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "value",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.FollowLifecycleTransition",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Get"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Gets a file attached to the input document. The file location is specified using an xpath to the blob property of the document. Returns the file.",
      "hierarchyPath": "/op:Document.GetBlob",
      "label": "Get Document File",
      "name": "Document.GetBlob",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.GetDocumentBlob",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [
            "file:content"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "blob",
        "documents",
        "bloblist"
      ],
      "url": "Document.GetBlob",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.GetAll"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Gets a list of all blobs that are attached on the input document. Returns a list of files.",
      "hierarchyPath": "/op:Document.GetBlobs",
      "label": "Get All Document Files",
      "name": "Document.GetBlobs",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.GetAllDocumentBlobs",
      "params": [],
      "signature": [
        "document",
        "bloblist",
        "documents",
        "bloblist"
      ],
      "url": "Document.GetBlobs",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.GetList"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Gets a list of files that are attached on the input document. The files location should be specified using the blob list property xpath. Returns a list of files.",
      "hierarchyPath": "/op:Document.GetBlobsByProperty",
      "label": "Get Document Files",
      "name": "Document.GetBlobsByProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.GetDocumentBlobs",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [
            "files:files"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "bloblist",
        "documents",
        "bloblist"
      ],
      "url": "Document.GetBlobsByProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Get a child document given its name. Take as input the parent document and return the child document.",
      "hierarchyPath": "/op:Document.GetChild",
      "label": "Get Child",
      "name": "Document.GetChild",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.GetDocumentChild",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.GetChild",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Get the children of a document. The list of children will become the input for the next operation",
      "hierarchyPath": "/op:Document.GetChildren",
      "label": "Get Children",
      "name": "Document.GetChildren",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.GetDocumentChildren",
      "params": [],
      "signature": [
        "document",
        "documents",
        "documents",
        "documents"
      ],
      "url": "Document.GetChildren",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.GetLastVersion"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Returns the last version of the document if it exists.",
      "hierarchyPath": "/op:Document.GetLastVersion",
      "label": "Get Last version",
      "name": "Document.GetLastVersion",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.GetLastDocumentVersion",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.GetLastVersion",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Get the parent document of the input document. The parent document will become the input for the next operation. You can use the 'type' parameter to specify which parent to select from the document ancestors",
      "hierarchyPath": "/op:Document.GetParent",
      "label": "Get Parent",
      "name": "Document.GetParent",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.GetDocumentParent",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "type",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.GetParent",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Gets the versions of the input document.",
      "hierarchyPath": "/op:Document.GetVersions",
      "label": "Get Versions",
      "name": "Document.GetVersions",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.GetDocumentVersions",
      "params": [],
      "signature": [
        "document",
        "documents"
      ],
      "url": "Document.GetVersions",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Lock the input document for the current user. Returns back the locked document.",
      "hierarchyPath": "/op:Document.Lock",
      "label": "Lock",
      "name": "Document.Lock",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.LockDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Lock",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Move the input document into the target folder.",
      "hierarchyPath": "/op:Document.Move",
      "label": "Move",
      "name": "Document.Move",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.MoveDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "target",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Move",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Given a parent document, order the source child before the destination child.",
      "hierarchyPath": "/op:Document.Order",
      "label": "Order Document",
      "name": "Document.Order",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.OrderDocument",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "before",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "since": "10.1",
      "url": "Document.Order",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.MultiPublish"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Publish the input document(s) into several target sections. The target is evaluated to a document list (can be a path, UID or EL expression). Existing proxy is overridden if the override attribute is set. Returns a list with the created proxies.",
      "hierarchyPath": "/op:Document.PublishToSections",
      "label": "Multi-Publish",
      "name": "Document.PublishToSections",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.MultiPublishDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "target",
          "order": 0,
          "type": "documents",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "override",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "documents",
        "documents",
        "documents"
      ],
      "url": "Document.PublishToSections",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Reload the input document from the repository. Any previous modification made by the chain on this document will be lost if these modifications were not saved. Return the reloaded document.",
      "hierarchyPath": "/op:Document.Reload",
      "label": "Reset",
      "name": "Document.Reload",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.ReloadDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Reload",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Remove a named Acces Control List from the input document(s). Returns the document(s).",
      "hierarchyPath": "/op:Document.RemoveACL",
      "label": "Remove ACL",
      "name": "Document.RemoveACL",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemoveDocumentACL",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "acl",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.RemoveACL",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "RemoveEntryOfMultivaluedProperty"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Remove the first entry of the giving value in the multivalued xpath, does nothing if does not exist: <ul<li>if 'is Remove All' is check, all entry instance in the list.</li><li>if not will remove just the first one found</li></ul><p>Save parameter automatically saves the document in the database. It has to be turned off when this operation is used in the context of the empty document created, about to create, before document modification, document modified events.</p>",
      "hierarchyPath": "/op:Document.RemoveEntryOfMultivaluedProperty",
      "label": "Remove Entry Of Multivalued Property",
      "name": "Document.RemoveEntryOfMultivaluedProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemoveEntryOfMultiValuedProperty",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "value",
          "order": 0,
          "type": "serializable",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "is Remove All",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.RemoveEntryOfMultivaluedProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.RemoveFacet"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Removes the facet from the document. <p>WARNING: The save parameter is true by default, which means the document is saved in the database after removing the facet. It must be set to false when the operation is used in the context of an event that will fail if the document is saved (empty document created, about to create, before modification, ...).</p>",
      "hierarchyPath": "/op:Document.RemoveFacet",
      "label": "Remove Facet",
      "name": "Document.RemoveFacet",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemoveFacet",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "facet",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.RemoveFacet",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "This operation removes an entry from a multivalued property, specified using a xpath (e.g.: contract:customers). A specific entry can be removed using its index number. If the index parameter is left empty, all entries in the property are removed. Activating the save parameter forces the changes to be written in database immediately (at the cost of performance loss), otherwise changes made to the document will be written in bulk when the chain succeeds. <p>Save parameter has to be turned off when this operation is used in the context of the empty document created, about to create, before document modification, document modified events.</p>",
      "hierarchyPath": "/op:Document.RemoveItemFromListProperty",
      "label": "Removes an Entry From a Multivalued Property",
      "name": "Document.RemoveItemFromListProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemoveItemFromListProperty",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "index",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.RemoveItemFromListProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Remove a permission given its id or all permissions for a given user on the input document(s). Parameter 'id' or 'user' must be set. Returns the document(s).",
      "hierarchyPath": "/op:Document.RemovePermission",
      "label": "Remove Permission",
      "name": "Document.RemovePermission",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemovePermission",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "acl",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "user",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.RemovePermission",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Remove the given property of the input document(s) as specified by the 'xpath' parameter. If the property points to a list then clear the list. Removing a property means setting it to null. Return the document(s).",
      "hierarchyPath": "/op:Document.RemoveProperty",
      "label": "Remove Property",
      "name": "Document.RemoveProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemoveProperty",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.RemoveProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.RemoveProxies"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Will remove all proxies pointing on the input document. Useful for instance to unpublish a document. Notice: this operation will remove all proxies, including the ones pointing to the current document version (live proxies). Activating the save parameter forces the changes to be written in database immediately (at the cost of performance loss).",
      "hierarchyPath": "/op:Document.RemoveProxies",
      "label": "Remove Document Proxies",
      "name": "Document.RemoveProxies",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RemoveProxies",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.RemoveProxies",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Replace a given permission on the input document(s). Returns the document(s).",
      "hierarchyPath": "/op:Document.ReplacePermission",
      "label": "Replace Permission",
      "name": "Document.ReplacePermission",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.ReplacePermission",
      "params": [
        {
          "description": "ACE id.",
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACE permission.",
          "isRequired": true,
          "name": "permission",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACE target user/group.",
          "isRequired": true,
          "name": "username",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACL name.",
          "isRequired": false,
          "name": "acl",
          "order": 0,
          "type": "string",
          "values": [
            "local"
          ],
          "widget": null
        },
        {
          "description": "ACE begin date.",
          "isRequired": false,
          "name": "begin",
          "order": 0,
          "type": "date",
          "values": [],
          "widget": null
        },
        {
          "description": "Comment",
          "isRequired": false,
          "name": "comment",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "ACE end date.",
          "isRequired": false,
          "name": "end",
          "order": 0,
          "type": "date",
          "values": [],
          "widget": null
        },
        {
          "description": "Notify the user or not",
          "isRequired": false,
          "name": "notify",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.ReplacePermission",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Reset all properties for a given schema or xpath. If saveDocument is true, the document is saved. If save is true, the session is saved (setting save to true and saveDocument to false has no effect, the session will not be saved).<p>WARNING: Default values are true for both saveDocument and save, which means the document is saved by default. saveDocument must be set to false when the operation is used in the context of an event that will fail if the document is saved (empty document created, about to create, before modification, ...).</p>",
      "hierarchyPath": "/op:Document.ResetSchema",
      "label": "Reset Schema",
      "name": "Document.ResetSchema",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.ResetSchema",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "saveDocument",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "schema",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.ResetSchema",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Restores a document to the input version document. If createVersion is true, a version of the live document will be created before restoring it to the input version. If checkout is true, a checkout will be processed after restoring the document, visible in the UI by the '+' symbol beside the version number. Returns the restored document.",
      "hierarchyPath": "/op:Document.RestoreVersion",
      "label": "Restore Version",
      "name": "Document.RestoreVersion",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.RestoreVersion",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "checkout",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "createVersion",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document"
      ],
      "url": "Document.RestoreVersion",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Save in the repository any modification that was done on the input document. This operation should not be used in the context of the empty document created, about to create, before document modification, document modified events. Returns the saved document.",
      "hierarchyPath": "/op:Document.Save",
      "label": "Save",
      "name": "Document.Save",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.SaveDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Save",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.Set"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Set the input file to the given property on the input document. If the xpath points to a blob list then the blob is appended to the list, otherwise the xpath should point to a blob property. If the save parameter is set the document modification will be automatically saved. Return the document.",
      "hierarchyPath": "/op:Document.SetBlob",
      "label": "Set File",
      "name": "Document.SetBlob",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.SetDocumentBlob",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "file",
          "order": 0,
          "type": "blob",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [
            "file:content"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.SetBlob",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Blob.SetFilename"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Modify the filename of a file stored in the input document. The file is found in the input document given its xpath specified through the 'xpath' parameter. Return back the input document.",
      "hierarchyPath": "/op:Document.SetBlobName",
      "label": "Set File Name",
      "name": "Document.SetBlobName",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.blob.SetBlobFileName",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [
            "file:content"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.SetBlobName",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Set a single property value on the input document. The property is specified using its xpath. Save parameter automatically saves the document in the database. It has to be turned off when this operation is used in the context of the empty document created, about to create, before document modification, document modified events. Returns the modified document.",
      "hierarchyPath": "/op:Document.SetProperty",
      "label": "Update Property",
      "name": "Document.SetProperty",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.SetDocumentProperty",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "value",
          "order": 0,
          "type": "serializable",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.SetProperty",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Moves documents to the trash.",
      "hierarchyPath": "/op:Document.Trash",
      "label": "Trash",
      "name": "Document.Trash",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.TrashDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Trash",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Unblock the permission inheritance on the input document(s). Returns the document(s).",
      "hierarchyPath": "/op:Document.UnblockPermissionInheritance",
      "label": "Unblock Permission Inheritance",
      "name": "Document.UnblockPermissionInheritance",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.UnblockPermissionInheritance",
      "params": [
        {
          "description": "ACL name.",
          "isRequired": false,
          "name": "acl",
          "order": 0,
          "type": "string",
          "values": [
            "local"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.UnblockPermissionInheritance",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Unlock the input document. The unlock will be executed in the name of the current user. An user can unlock a document only if has the UNLOCK permission granted on the document or if it the same user as the one that locked the document. Return the unlocked document",
      "hierarchyPath": "/op:Document.Unlock",
      "label": "Unlock",
      "name": "Document.Unlock",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.UnlockDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Unlock",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Undeletes documents (and ancestors if needed to make them visible)..",
      "hierarchyPath": "/op:Document.Untrash",
      "label": "Untrash",
      "name": "Document.Untrash",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.UntrashDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Untrash",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Set multiple properties on the input document. The properties are specified as <i>key=value</i> pairs separated by a new line. The key used for a property is the property xpath. To specify multi-line values you can use a \\ character followed by a new line. <p>Example:<pre>dc:title=The Document Title<br>dc:description=foo bar</pre>For updating a date, you will need to expose the value as ISO 8601 format, for instance : <p>Example:<pre>dc:title=The Document Title<br>dc:issued=@{org.nuxeo.ecm.core.schema.utils.DateParser.formatW3CDateTime(CurrentDate.date)}</pre><p>Returns back the updated document.<p>To update a multi-valued field with multiple values:<pre>custom:multivalued=a,b,c,d</pre><p>Save parameter automatically saves the document in the database. It has to be turned off when this operation is used in the context of the empty document created, about to create, before document modification, document modified events.</p>",
      "hierarchyPath": "/op:Document.Update",
      "label": "Update Properties",
      "name": "Document.Update",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.UpdateDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "properties",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "changeToken",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "propertiesBehaviors",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Update",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Notification.SendEvent"
      ],
      "category": "Notification",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Send a Nuxeo event.",
      "hierarchyPath": "/op:Event.Fire",
      "label": "Send Event",
      "name": "Event.Fire",
      "operationClass": "org.nuxeo.ecm.automation.core.events.operations.FireEvent",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "properties",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "Event.Fire",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Toggle stack display in json response for all rest api calls in Nuxeo",
      "hierarchyPath": "/op:JsonStack.ToggleDisplay",
      "label": "Json Error Stack Display",
      "name": "JsonStack.ToggleDisplay",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.traces.JsonStackToggleDisplayOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "enableTrace",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "boolean"
      ],
      "since": "6.0",
      "url": "JsonStack.ToggleDisplay",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "LogOperation"
      ],
      "category": "Notification",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Logging with log4j",
      "hierarchyPath": "/op:Log",
      "label": "Log",
      "name": "Log",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.LogOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "level",
          "order": 0,
          "type": "string",
          "values": [
            "info",
            "debug",
            "warn",
            "error"
          ],
          "widget": "Option"
        },
        {
          "description": null,
          "isRequired": true,
          "name": "message",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "category",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "Log",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "GetLiveDocument"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Get the live document even if this is a Proxy or Version Document.",
      "hierarchyPath": "/op:Proxy.GetSourceDocument",
      "label": "Get Live Document",
      "name": "Proxy.GetSourceDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.GetLiveDocument",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Proxy.GetSourceDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Get a document or a list of document in input and outputs one or more blobs that contain a rendered view for each input document given a rendering template. The template attribute may contain either the template content either a template URI. Template URis are strings in the form 'template:template_name' and will be located using the runtime resource service. Return the rendered file(s) as blob(s)",
      "hierarchyPath": "/op:Render.Document",
      "label": "Render Document",
      "name": "Render.Document",
      "operationClass": "org.nuxeo.ecm.automation.core.rendering.operations.RenderDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "template",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TemplateResource"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "filename",
          "order": 0,
          "type": "string",
          "values": [
            "output.ftl"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "mimetype",
          "order": 0,
          "type": "string",
          "values": [
            "text/xml"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "type",
          "order": 0,
          "type": "string",
          "values": [
            "ftl",
            "mvel"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "document",
        "blob",
        "documents",
        "bloblist"
      ],
      "url": "Render.Document",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Get a list of documents as input and outputs a single blob containing the rendering of the document list. The template attribute may contain either the template content either a template URI. Template URis are strings in the form 'template:template_name' and will be located using the runtime resource service. Return the rendered blob",
      "hierarchyPath": "/op:Render.DocumentFeed",
      "label": "Render Document Feed",
      "name": "Render.DocumentFeed",
      "operationClass": "org.nuxeo.ecm.automation.core.rendering.operations.RenderDocumentFeed",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "template",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TemplateResource"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "charset",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "filename",
          "order": 0,
          "type": "string",
          "values": [
            "output.ftl"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "mimetype",
          "order": 0,
          "type": "string",
          "values": [
            "text/xml"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "type",
          "order": 0,
          "type": "string",
          "values": [
            "ftl",
            "mvel"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "documents",
        "blob"
      ],
      "url": "Render.DocumentFeed",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.Fetch"
      ],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Fetch a document from the repository given its reference (path or UID). The document will become the input of the next operation.",
      "hierarchyPath": "/op:Repository.GetDocument",
      "label": "Document",
      "name": "Repository.GetDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.document.FetchDocument",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "value",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "document"
      ],
      "url": "Repository.GetDocument",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.SaveSession"
      ],
      "category": "Execution Flow",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Commit any changes made by the operation on the documents. This can be used to explicitly commit changes. This operation can be executed on any type of input. The input of this operation will be preserved as the input for the next operation in the chain.",
      "hierarchyPath": "/op:Repository.SaveSession",
      "label": "Save Session",
      "name": "Repository.SaveSession",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.execution.SaveSession",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "Repository.SaveSession",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.RunDocumentOperation"
      ],
      "category": "Execution Flow",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run an operation chain which is returning a document in the current context. The input for the chain ro run is the current input of the operation. Return the output of the chain as a document. The 'parameters' injected are accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
      "hierarchyPath": "/op:RunDocumentOperation",
      "label": "Run Document Chain",
      "name": "RunDocumentOperation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.execution.RunDocumentChain",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "isolate",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": "Define if the chain in parameter should be executed in new transaction.",
          "isRequired": false,
          "name": "newTx",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": "Accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
          "isRequired": false,
          "name": "parameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": "Define if transaction should rollback or not (default to true)",
          "isRequired": false,
          "name": "rollbackGlobalOnError",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": "Define transaction timeout (default to 60 sec).",
          "isRequired": false,
          "name": "timeout",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "RunDocumentOperation",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.RunFileOperation"
      ],
      "category": "Execution Flow",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run an operation chain which is returning a file in the current context. The input for the chain to run is a file or a list of files. Return the output of the chain as a file or a list of files. The 'parameters' injected are accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
      "hierarchyPath": "/op:RunFileOperation",
      "label": "Run File Chain",
      "name": "RunFileOperation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.execution.RunFileChain",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "isolate",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": "Define if the chain in parameter should be executed in new transaction.",
          "isRequired": false,
          "name": "newTx",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": "Accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
          "isRequired": false,
          "name": "parameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": "Define if transaction should rollback or not (default to true)",
          "isRequired": false,
          "name": "rollbackGlobalOnError",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": "Define transaction timeout (default to 60 sec).",
          "isRequired": false,
          "name": "timeout",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "bloblist",
        "blob",
        "blob"
      ],
      "url": "RunFileOperation",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.RunInputScript"
      ],
      "category": "Scripting",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run a script from the input blob. A blob comtaining script result is returned.",
      "hierarchyPath": "/op:RunInputScript",
      "label": "Run Input Script",
      "name": "RunInputScript",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RunInputScript",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "type",
          "order": 0,
          "type": "string",
          "values": [
            "mvel",
            "groovy"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "blob",
        "blob"
      ],
      "url": "RunInputScript",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.RunOperation"
      ],
      "category": "Execution Flow",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run an operation chain in the current context. The 'parameters' injected are accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
      "hierarchyPath": "/op:RunOperation",
      "label": "Run Chain",
      "name": "RunOperation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.execution.RunOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "isolate",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": "Accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
          "isRequired": false,
          "name": "parameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "RunOperation",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.RunOperationOnList"
      ],
      "category": "Execution Flow",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run an operation for each element from the list defined by the 'list' parameter. The 'list' parameter is pointing to a context variable that represents the list which will be iterated. The 'item' parameter represents the name of the context variable which will point to the current element in the list at each iteration. You can use the 'isolate' parameter to specify whether or not the evalution context is the same as the parent context or a copy of it. If the 'isolate' parameter is 'true' then a copy of the current context is used and so that modifications in this context will not affect the parent context. Any input is accepted. The input is returned back as output when operation terminates. The 'parameters' injected are accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
      "hierarchyPath": "/op:RunOperationOnList",
      "label": "Run For Each",
      "name": "RunOperationOnList",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.execution.RunOperationOnList",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "list",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "isolate",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "item",
          "order": 0,
          "type": "string",
          "values": [
            "item"
          ],
          "widget": null
        },
        {
          "description": "Define if the chain in parameter should be executed in new transaction.",
          "isRequired": false,
          "name": "newTx",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": "Accessible in the subcontext ChainParameters. For instance, @{ChainParameters['parameterKey']}.",
          "isRequired": false,
          "name": "parameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": "Define if transaction should rollback or not (default to true)",
          "isRequired": false,
          "name": "rollbackGlobalOnError",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": "Define transaction timeout (default to 60 sec).",
          "isRequired": false,
          "name": "timeout",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "RunOperationOnList",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.RunScript"
      ],
      "category": "Scripting",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Run a script which content is specified as text in the 'script' parameter",
      "hierarchyPath": "/op:RunScript",
      "label": "Run Script",
      "name": "RunScript",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.RunScript",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "script",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TextArea"
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "RunScript",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Retrieve trace associated to a Chain or an Operation",
      "hierarchyPath": "/op:Traces.Get",
      "label": "Traces.getTrace",
      "name": "Traces.Get",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.traces.AutomationTraceGetOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "index",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "traceKey",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "string"
      ],
      "url": "Traces.Get",
      "version": "2023.22.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Execution Context",
      "contributingComponent": "org.nuxeo.ecm.core.automation.coreContrib",
      "description": "Toggle Automation call tracing (you can set the 'enableTrace' parameter if you want to explicitly set the traceEnable value",
      "hierarchyPath": "/op:Traces.ToggleRecording",
      "label": "Traces.toggleRecording",
      "name": "Traces.ToggleRecording",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.traces.AutomationTraceToggleOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "enableTrace",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "readOnly",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "boolean"
      ],
      "url": "Traces.ToggleRecording",
      "version": "2023.22.13"
    }
  ],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1732717764661,
  "version": "2023.22"
}